'''
Author: duliang thinktanker@163.com
Date: 2024-03-24 14:00:35
LastEditors: duliang thinktanker@163.com
LastEditTime: 2024-03-24 14:00:41
FilePath: \opencv2\test.py
Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
'''
import tkinter as tk
import time


def draw_rect(canvas, width, height):
    # 初始化画布大小
    canvas.config(width=width, height=height)

    # 初始化矩形的初始状态
    x0, y0 = 50, 50
    w0, h0 = 0, 0
    rect_id = None

    # 动态绘制矩形的过程
    for size in range(1, 101):  # 假设我们以100步完成矩形从无到有的增长
        # 更新矩形尺寸
        w = int(size * 5)  # 这里按每步增加5像素宽度和高度来模拟增长
        h = w
        x = x0 - w // 2
        y = y0 - h // 2

        # 清除上次绘制的矩形（如果存在）
        if rect_id:
            canvas.delete(rect_id)

        # 绘制新的矩形
        rect_id = canvas.create_rectangle(x, y, x + w, y + h, fill='blue')

        # 暂停一下，以便肉眼可以看到变化
        time.sleep(0.01)  # 实际应用中可以考虑使用`after`方法代替sleep以避免阻塞主线程

        # 强制Tkinter刷新屏幕
        canvas.update()


root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack(fill='both', expand=True)

draw_rect(canvas, 400, 400)

root.mainloop()
